home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / i / imagefxv2.1a.lha / ImageFX / Rexx / ToasterRender.ifx < prev    next >
Text File  |  1996-03-02  |  2KB  |  105 lines

  1. /*
  2.  * $VER: ToasterRender 2.0.0 (22.7.94)
  3.  *
  4.  * Arexx program for the ImageFX 2.0 image processing system.
  5.  * Written by Thomas Krehbiel
  6.  *
  7.  * Render a frame to the Video Toaster frame buffer.
  8.  *
  9.  */
  10.  
  11. OPTIONS RESULTS
  12.  
  13. toastport   = 'ToasterARexx.port'
  14. fsdev       = 'RAM:'
  15. fspath      = fsdev||'FrameStore'
  16. fsname      = 'TempIFX'
  17. fsnum       = 998
  18. fsfullname  = fspath||'/'fsnum||'.FS.'||fsname
  19. fswidth     = 752
  20. fsheight    = 480
  21.  
  22. GetMain
  23. IF rc ~= 0 THEN DO
  24.    RequestNotify 'Requires a main buffer image.'
  25.    EXIT
  26.    END
  27. PARSE VAR result name width height .
  28.  
  29. IF (~SHOW('L', toastport)) THEN
  30.     ADDLIB(toastport, -1)
  31.  
  32. IF ~SHOW('P', toastport) THEN DO
  33.    RequestNotify 'Switcher is not running.'
  34.    EXIT
  35.    END
  36.  
  37. IF ~EXISTS(fspath) THEN
  38.    ADDRESS COMMAND 'Makedir' fspath
  39.  
  40.  
  41. IF (width ~= fswidth) | (height ~= fsheight) THEN DO
  42.    RequestThree '"Scale image to fill Toaster screen?"' 'Yes' 'No' 'Cancel'
  43.    IF rc ~= 0 THEN CALL Abort
  44.    IF result = 'Yes' THEN DO
  45.       Scale fswidth fsheight
  46.       END
  47.    END
  48.  
  49. IF EXISTS(fsfullname) THEN DO
  50.    RequestResponse 'FrameStore' fsnum 'already exists.  Delete it?'
  51.    IF rc ~= 0 THEN CALL Abort
  52.    ADDRESS COMMAND 'Delete' fsfullname
  53.    END
  54.  
  55. GetPrefs SaveNails
  56. oldnails = result
  57. SetPrefs SaveNails Off
  58.  
  59. SaveBufferAs 'FrameStore' fsfullname NoCompress
  60. IF rc ~= 0 THEN CALL Abort
  61.  
  62. oldfsdev = Switcher(FSNM)
  63.  
  64. Switcher(TOSW)
  65. IF oldfsdev = 'RAM:' THEN
  66.     Switcher(FSBD)
  67. ELSE DO
  68.     IF Switcher(FSDV, 'RAM:') ~= SWITCHER THEN DO
  69.         Switcher(TOWB)
  70.         RequestNotify 'Could not change FrameStore device.'
  71.         CALL Abort
  72.        END
  73.    END
  74.  
  75. i = Switcher(FMXI, fsnum)
  76. IF i = 0 THEN DO
  77.     Switcher(TOWB)
  78.     RequestNotify 'Switcher cannot find FrameStore' fsnum
  79.     CALL Abort
  80.    END
  81.  
  82. IF Switcher(FMLD, fsnum) ~= SWITCHER THEN DO
  83.     Switcher(TOWB)
  84.     RequestNotify 'Switcher cannot load FrameStore' fsnum
  85.     CALL Abort
  86.    END
  87.  
  88. Switcher(TAKE)
  89. Switcher(TOWB)
  90. ScreenToFront
  91.  
  92. Abort:
  93.  
  94.    IF EXISTS(fsfullname) THEN
  95.       ADDRESS COMMAND 'Delete' fsfullname
  96.  
  97.    IF oldfsdev ~= 'OLDFSDEV' THEN
  98.       Switcher(FSDV, oldfsdev)
  99.  
  100.    SetPrefs SaveNails oldnails
  101.  
  102.    REMLIB(toastport)
  103.  
  104.    EXIT
  105.